package com.ruoyi.experiment.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 项目对象 project
 *
 * @author ruoyi
 * @date 2024-05-29
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Project extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 项目id
     */
    private Long projectId;

    /**
     * 合同编号
     */
    private String contractCode;

    /**
     * 项目编号
     */
    @Excel(name = "项目编号")
    private String code;

    /**
     * 项目名称
     */
    @Excel(name = "项目名称")
    private String projectName;

    /**
     * 项目负责人id
     */
    private Long projectLeaderId;

    @Excel(name = "项目负责人")
    private String projectLeaderName;
    /**
     * 项目联系人
     */
    @Excel(name = "项目联系人")
    private String projectContact;

    private String projectLeader;

    /**
     * 检查时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "检查时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date inspectionTime;

    /**
     * 结题时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结题时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date conpletionTime;

    /**
     * 项目归属
     */
    @Excel(name = "项目归属")
    private String projectOwner;

    /**
     * 项目状态：0--项目录入
     * 1--样品录入
     * 2--实验录入
     * 3--实验中
     * 4--财务结算
     * 5-结题
     */
    @Excel(name = "项目状态",readConverterExp = "0=项目录入,1=样品录入,2=实验录入,3=实验中,4=财务结算,5=结题,")
    private Long projectStyle;

    @Excel(name = "是否有合同",readConverterExp = "0=没有,1=有")
    private Integer haveContract;

    /**
     * 合同名称
     */
    @Excel(name = "合同名称")
    private String contractName;

    /**
     * 签订时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签订时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date signingTime;

    /**
     * 合同签订地址
     */
//    @Excel(name = "合同签订地址")
    private String signingLocation;

    /**
     * 履行开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "履行开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 履约结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "履约结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date finishDate;

    /**
     * 项目/合同总额
     */
    @Excel(name = "项目/合同总额")
    private Long totalAmount;

    /**
     * 剩余合同份数
     */
//    @Excel(name = "剩余合同份数")
    private Long contractNumber;

    /**
     * 是否需要专利
     */
    //@Excel(name = "是否需要专利")
    private Long patent;

    /**
     * 专利要求
     */
    //@Excel(name = "专利要求")
    private String patentRequirement;

    /**
     * 是否需要文章
     */
    //@Excel(name = "是否需要文章")
    private Long article;

    /**
     * 文章要求
     */
    //@Excel(name = "文章要求")
    private String articleRequirement;

    /**
     * 是否提交给科研办
     */
    //@Excel(name = "是否提交给科研办")
    private Long scientificOffice;

    /**
     * 甲方地址
     */
    //@Excel(name = "甲方地址")
    private String aLocation;

    /**
     * 甲方邮箱
     */
    //@Excel(name = "甲方邮箱")
    private String aEmail;

    /**
     * 乙方
     */
    //@Excel(name = "乙方")
    private String partB;

    /**
     * 乙方法定人代表
     */
    //@Excel(name = "乙方法定人代表")
    private String bLegal;

    /**
     * 乙方电话
     */
    //@Excel(name = "乙方电话")
    private String bPhone;

    /**
     * 乙方地址
     */
    //@Excel(name = "乙方地址")
    private String bLocation;

    /**
     * 乙方邮箱
     */
    //@Excel(name = "乙方邮箱")
    private String bEmail;

    /**
     * 收款人账户名称
     */
    //@Excel(name = "收款人账户名称")
    private String payeeAccount;

    /**
     * 开户银行
     */
    //@Excel(name = "开户银行")
    private String openingBank;

    /**
     * 银行账户
     */
    //@Excel(name = "银行账户")
    private String bankAccount;

    /**
     * 合同文件
     */
    //@Excel(name = "合同文件")
    private String contractDocuments;

    /**
     * 补充文件
     */
    //@Excel(name = "补充文件")
    private String supplementaryDocuments;

    /**
     * 提交给科研办时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "提交给科研办时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scientificOfficeDate;

    /**
     * 是否提交给院办
     */
    //@Excel(name = "是否提交给院办")
    private Long instituteOffice;

    /**
     * 是否需要备案
     */
    //@Excel(name = "是否需要备案")
    private Long record;

    /**
     * 合同主要内容
     */
    //@Excel(name = "合同主要内容")
    private String contractContent;

    /**
     * 甲方
     */
    //@Excel(name = "甲方")
    private String partA;

    /**
     * 甲方法定人代表
     */
    //@Excel(name = "甲方法定人代表")
    private String aLegal;

    /**
     * 甲方电话
     */
    //@Excel(name = "甲方电话")
    private String aPhone;

    /**
     * 提交给院办时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    //@Excel(name = "提交给院办时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date instituteOfficeDate;

    private Boolean finish;

    //合同类型
    private String type;

}

